                                    /* 老师写的 */

// #pragma once

// #include <iostream>
// #include <string>
// #include <vector>
// #include <unordered_map>
// #include <unistd.h>
// #include <functional>

// typedef std::function<void()> func;

// std::vector<func> callbacks;
// std::unordered_map<int, std::string> desc;

// void readMySQL()
// {
//     std::cout << "sub process[" << getpid() << " ] 执行访问数据库的任务\n" << std::endl;
// }

// void execuleUrl()
// {
//     std::cout << "sub process[" << getpid() << " ] 执行url解析\n" << std::endl;
// }

// void cal()
// {
//     std::cout << "sub process[" << getpid() << " ] 执行加密任务\n" << std::endl;
// }

// void save()
// {
//     std::cout << "sub process[" << getpid() << " ] 执行数据持久化任务\n" << std::endl;
// }

// void load()
// {
//     desc.insert({callbacks.size(), "readMySQL: 读取数据库"});
//     callbacks.push_back(readMySQL);

//     desc.insert({callbacks.size(), "execuleUrl: 进行url解析"});
//     callbacks.push_back(execuleUrl);

//     desc.insert({callbacks.size(), "cal: 进行加密计算"});
//     callbacks.push_back(cal);

//     desc.insert({callbacks.size(), "save: 进行数据的文件保存"});
//     callbacks.push_back(save);
// }

// void showHandler()
// {
//     for(const auto &iter : desc )
//     {
//         std::cout << iter.first << "\t" << iter.second << std::endl;
//     }
// }

// int handlerSize()
// {
//     return callbacks.size();
// }



                                    /* 自己写的 */

#pragma once

#include <iostream>
#include <unordered_map>
#include <vector>

#include <unistd.h>
#include <sys/types.h>

#include <functional>

using namespace std;

typedef function<void()> func;

vector<func>vec;// 类似函数指针数组

void readMySQL()
{
    cout << "sub process[" << getpid() << " ] 执行访问数据库的任务\n" << endl;
}

void execuleUrl()
{
    cout << "sub process[" << getpid() << " ] 执行url解析\n" << endl;
}

void cal()
{
    cout << "sub process[" << getpid() << " ] 执行加密任务\n" << endl;
}

void save()
{
    std::cout << "sub process[" << getpid() << " ] 执行数据持久化任务\n" << std::endl;
}

void load()
{
    vec.push_back(readMySQL);

    vec.push_back(execuleUrl);
    
    vec.push_back(cal);
    
    vec.push_back(save);
}

int getFuncSize()
{
    return vec.size();
}